# --------------------------------------------------------------------------------------------------------------------
# Project:             Digital Payment System (DPS)
# Website:             http://code.google.com/p/dps-x509/
# Purpose of document: Raw contents of certificates. I was having trouble uploading them onto google app engine so
#                      this seems a suitable work around
# --------------------------------------------------------------------------------------------------------------------

import sys

sys.path.append("..")

try:
  import keyczar.keys as keys
except ImportError:
  from keyczar import *

  
def testbase64_crt():
  return """-----BEGIN CERTIFICATE-----
MIICoDCCAgmgAwIBAgIFAJH+SqIwDQYJKoZIhvcNAQEFBQAwUDELMAkGA1UEBhMC
QVUxDDAKBgNVBAgTA0FDVDERMA8GA1UEBxMIQ2FuYmVycmExIDAeBgNVBAMMF3Rp
bW9fbWF0aGFzQGhvdG1haWwuY29tMB4XDTEwMDkxMTAyMDc1OVoXDTEzMDkxMTAy
MDc1OVowUDELMAkGA1UEBhMCQVUxDDAKBgNVBAgTA0FDVDERMA8GA1UEBxMIQ2Fu
YmVycmExIDAeBgNVBAMMF3RpbW9fbWF0aGFzQGhvdG1haWwuY29tMIGfMA0GCSqG
SIb3DQEBAQUAA4GNADCBiQKBgQC99Jed+KPnROHY5NPJZidyZ8N9ItHM/w4kd0hB
Lobbk2vlvpv4Cy2TCeRXZH6VHGudnsqpuxNvjaimNC/aHKZc1EL5Ej/BZcRoWVom
aaJB6f1UFwZZcq8FoUop8Kr03RYLoZqBJagqW47kgF3RHTgykTaYOZmdoRUY45go
IqVyKwIDAQABo4GFMIGCMBQGCWCGSAGG+EIBAQEB/wQEAwIEsDAgBgNVHQ4BAf8E
FgQUunY/thpP15uZmXhCSv3qVlthxUwwKgYDVR0lAQH/BCAwHgYIKwYBBQUHAwIG
CCsGAQUFBwMDBggrBgEFBQcDBDAOBgNVHQ8BAf8EBAMCA7gwDAYDVR0TAQH/BAIw
ADANBgkqhkiG9w0BAQUFAAOBgQAjBGZs3HcTn8PrODsf4mE4nwdh56zZYHuvQfHz
2aPk607esIiFQjwUpRuwqz1ToY+yTmDCAl17+9xgv1Ky+Qb+gZDt2KXCcEInE4oI
KQCADyjmbbVXFl2RK2YzVOfYGBFSMQzKcdwt+KnwiilqGimnBo5p7L96m4nb5rwD
7Z9GdQ==
-----END CERTIFICATE-----"""

def testbase64_1024pubkey_crt():
  return """-----BEGIN CERTIFICATE-----
MIICpDCCAg2gAwIBAgIFAJISar0wDQYJKoZIhvcNAQEFBQAwUjELMAkGA1UEBhMC
VVMxCzAJBgNVBAgTAk5KMREwDwYDVQQHEwhMaW5jcm9mdDEUMBIGA1UEChMLU2Vs
Zi1TaWduZWQxDTALBgNVBAMTBDEwMjQwHhcNMTAwOTE5MDIxMzAzWhcNMTMwOTE5
MDIxMzAzWjBSMQswCQYDVQQGEwJVUzELMAkGA1UECBMCTkoxETAPBgNVBAcTCExp
bmNyb2Z0MRQwEgYDVQQKEwtTZWxmLVNpZ25lZDENMAsGA1UEAxMEMTAyNDCBnzAN
BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAnBEiKtd/VLjFkbHUnawR6p4EVpC35XTz
OFLERu405YxkTTVc/+IjP+dzT7DlKgmorsetXDZJsvG9bRmK8KCNZZf9G+7bXfKn
fUZatkqEIq/4sQcAirfSdexN5pUCIr9gAVYYDGoTYAoLQWQQ0OzE3+uEgRIG+/WJ
VfDuIdOuCpsCAwEAAaOBhTCBgjAUBglghkgBhvhCAQEBAf8EBAMCBLAwIAYDVR0O
AQH/BBYEFL3i/gntI88klkVPQdIO1UFyulHlMCoGA1UdJQEB/wQgMB4GCCsGAQUF
BwMCBggrBgEFBQcDAwYIKwYBBQUHAwQwDgYDVR0PAQH/BAQDAgO4MAwGA1UdEwEB
/wQCMAAwDQYJKoZIhvcNAQEFBQADgYEAK777NVaOQs4O4dNaQ+A/f2JsZdvk0adJ
SXLFjyTSc6Q82qbgKFZUCUkROD/wunxD+f73DrXlEEelETkNsqljgIqT1DmTtsXe
mNeAcuJwUWEPUCi9IV2sLXzNvjMELDrxnd8+nlfFDTaNjuDORXWycWblInW/5kBO
GJOFdCn37Kw=
-----END CERTIFICATE-----
"""

def testbase64dsa_crt():
  return """-----BEGIN CERTIFICATE-----
MIIDYTCCAyGgAwIBAgIFAJIQlkwwCQYHKoZIzjgEAzBSMQswCQYDVQQGEwJVUzEL
MAkGA1UECBMCTkoxETAPBgNVBAcTCExpbmNyb2Z0MRQwEgYDVQQKEwtTZWxmLVNp
Z25lZDENMAsGA1UEAxMEdGVzdDAeFw0xMDA5MTgwODQ1MDlaFw0xMzA5MTgwODQ1
MDlaMFIxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOSjERMA8GA1UEBxMITGluY3Jv
ZnQxFDASBgNVBAoTC1NlbGYtU2lnbmVkMQ0wCwYDVQQDEwR0ZXN0MIIBtjCCASsG
ByqGSM44BAEwggEeAoGBAJjvOq5wmJtE2zWGwbbCR3y0/5norkTy68O+Iw9l0EwE
gpCnnUrIk39B3/iAawtof6/kqLWymcNp+z/nG9APqXpKBL9QniIzuIlTJBD5aHet
rxBouNNoXaPD63I7oAtzZcXR+ozAfapSKTREAb8SJf4YCsg/wWBI262TtmFn16gt
AhUAtbCEi0Qp9jNZoTy+0n81oXYnA4ECgYAEDoNp8c195Qx4k9ZJbwAETg5sN6o4
IkfSWOyDEpX5nPH0J//XmVc1xmRMwEcSMVCCPCoHAwHvMAmJgkF2cdqeV4t2ODdf
pc0yhEWNTBdUK13Ca7o+oHuV1wBC9wi4g4dg4eX0GlTCINo4OtG2EPTLNdqXkofW
pTditJNKFSGlEAOBhAACgYB8jH9h2U286CrljWTQC18atBOkjZimhV6nZSKGvmhy
YLyGj78DL3edvU2oPX9WfE+JtEGsMwXwPRMVMtDNtcOEiz5YOtuWtPrY4D40Ou2Z
3yN7fbFBdJVUA2FAUL/mET3opjFnEiX/KFl1YmXhFRzv4Yho1FGB4CukuJHbuH9w
3qOBhTCBgjAUBglghkgBhvhCAQEBAf8EBAMCBLAwIAYDVR0OAQH/BBYEFAL67oX6
yeUJ0AN+MVKQEBgdzbxdMCoGA1UdJQEB/wQgMB4GCCsGAQUFBwMCBggrBgEFBQcD
AwYIKwYBBQUHAwQwDgYDVR0PAQH/BAQDAgO4MAwGA1UdEwEB/wQCMAAwCQYHKoZI
zjgEAwMvADAsAhQPS5yudWR3WsLnuEU7bpxAMmPzxgIUDJt4yuVwat8co1tg4Cf9
8Rt+ldU=
-----END CERTIFICATE-----"""

def testbase64sha256_crt():
  return """-----BEGIN CERTIFICATE-----
MIICrDCCAhWgAwIBAgIFAJI9jt4wDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMC
VVMxCzAJBgNVBAgTAk5KMREwDwYDVQQHEwhMaW5jcm9mdDEUMBIGA1UEChMLU2Vs
Zi1TaWduZWQxETAPBgNVBAMTCHRlc3QgMjU2MB4XDTEwMTAwNjA1NTgyMVoXDTEz
MTAwNjA1NTgyMVowVjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAk5KMREwDwYDVQQH
EwhMaW5jcm9mdDEUMBIGA1UEChMLU2VsZi1TaWduZWQxETAPBgNVBAMTCHRlc3Qg
MjU2MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrhj1XODM06yc9wQIs58j8
MotfBB34g777YM+3Q57lTto7Lv3SfGc12UJvnq1Ba4Dy1+9DlXE1l8GvXD3cXPn6
qV22iyywzEcmokCdkJOCyFgW6sEpM49ByPTxAzpmuz1e0j9JFVjPkDc2cnPdYKXJ
eNZoqCAEFQJYSNJLNtoVNwIDAQABo4GFMIGCMBQGCWCGSAGG+EIBAQEB/wQEAwIE
sDAgBgNVHQ4BAf8EFgQU4cALxxtxFoN+9eABDxAoJiqx90MwKgYDVR0lAQH/BCAw
HgYIKwYBBQUHAwIGCCsGAQUFBwMDBggrBgEFBQcDBDAOBgNVHQ8BAf8EBAMCA7gw
DAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOBgQA3O5iZwN6dqBSTNBrX6+/d
q3GuViE/n7ui9nvDJ8/yJcAV+PnNES/BNgwGr5C4bUpEsC7AlMszWdl5wLY2n8SM
F9VaST02awrNj7Q7chM4ucrR+JL73DM8UHfjsOZh38pSviEaW41nZvJZ/BVdEKrL
QyxJPavHP7Sio1nC0AZMZA==
-----END CERTIFICATE-----"""

def testbase64sha384_crt():
  return """-----BEGIN CERTIFICATE-----
MIICqDCCAhGgAwIBAgIFAJI9lbEwDQYJKoZIhvcNAQEMBQAwVDELMAkGA1UEBhMC
VVMxCzAJBgNVBAgTAk5KMREwDwYDVQQHEwhMaW5jcm9mdDEUMBIGA1UEChMLU2Vs
Zi1TaWduZWQxDzANBgNVBAMTBnNoYTM4NDAeFw0xMDEwMDYwNjEzMzdaFw0xMzEw
MDYwNjEzMzdaMFQxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOSjERMA8GA1UEBxMI
TGluY3JvZnQxFDASBgNVBAoTC1NlbGYtU2lnbmVkMQ8wDQYDVQQDEwZzaGEzODQw
gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKU7OqW5SuoByw6PBo4DOVjOyNaz
yyuq7IbVV9/dA37QyM67XMsuDQ95hDbL0TwmEdwC+IJ5DHObE9yhBcPc8ra4u4d8
hdr8a91qLFCAjT4EK5ODUWerrihwslDxgLWrMtRrLSxlKegdOWqpVvlntBsV45Bx
R5au2Lp5vdvBSeFPAgMBAAGjgYUwgYIwFAYJYIZIAYb4QgEBAQH/BAQDAgSwMCAG
A1UdDgEB/wQWBBTY6VRp2gE2s943p4e386vrgmSU8DAqBgNVHSUBAf8EIDAeBggr
BgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEMA4GA1UdDwEB/wQEAwIDuDAMBgNV
HRMBAf8EAjAAMA0GCSqGSIb3DQEBDAUAA4GBAJu0ZPiduw0XvOaoszgJxw0uqfYj
7CbTvq19RSr+BdGKSXxu9FX2YbJsWp3dVdv1kX7WqBsVISJAe+yeYeM1FHjqHRWf
EOhNoNlY8tVcrN5JzllljKxqz3LgIcVpKSuJ6rcQZJmUxARoae2KhPlasY5kJnu8
ZwZrk9AliqUYj5Rj
-----END CERTIFICATE-----"""

def testbase64sha512_crt():
  return """-----BEGIN CERTIFICATE-----
MIICqDCCAhGgAwIBAgIFAJI9ljgwDQYJKoZIhvcNAQENBQAwVDELMAkGA1UEBhMC
VVMxCzAJBgNVBAgTAk5KMREwDwYDVQQHEwhMaW5jcm9mdDEUMBIGA1UEChMLU2Vs
Zi1TaWduZWQxDzANBgNVBAMTBnNoYTUxMjAeFw0xMDEwMDYwNjE0NDhaFw0xMzEw
MDYwNjE0NDhaMFQxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOSjERMA8GA1UEBxMI
TGluY3JvZnQxFDASBgNVBAoTC1NlbGYtU2lnbmVkMQ8wDQYDVQQDEwZzaGE1MTIw
gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKDr65K9Cu1f0BP4J3ybacxHtbic
C5Mtd+TC7A/PxPdEvJldmex5IsJF7xUsJZnPS6nDNfRtgYqifHecEbMx11IhKbfY
f+Jqt8QfuDb72OTFMZLHlAEsxiY5mgMrejPFpTg9JOwK08BCmYXg+gF9qgiaXxK7
zRj2ANLw6ebNsAlzAgMBAAGjgYUwgYIwFAYJYIZIAYb4QgEBAQH/BAQDAgSwMCAG
A1UdDgEB/wQWBBQoOCCw+dlaQb9nzuGpBZSE6gv8BjAqBgNVHSUBAf8EIDAeBggr
BgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEMA4GA1UdDwEB/wQEAwIDuDAMBgNV
HRMBAf8EAjAAMA0GCSqGSIb3DQEBDQUAA4GBAJGbJ/vbMR8IwRlpkFbAIiSJFD/b
83a0L5rNeNZp2wEzoApUlYFfGXD3PhgDH3qoLvOZliN/A4oE7zpM/H7C7dNh9JjY
QQs+FQKhE/YijXji/Q9Vpmh4JKyK4m8UQJaBSPOKK2QW5iU2qnjrPdmb1mTqEJla
kgHPd8lZAlSXHQ5e
-----END CERTIFICATE-----"""

def testbase64md2_crt():
  return """-----BEGIN CERTIFICATE-----
MIICojCCAgugAwIBAgIFAJI9locwDQYJKoZIhvcNAQECBQAwUTELMAkGA1UEBhMC
VVMxCzAJBgNVBAgTAk5KMREwDwYDVQQHEwhMaW5jcm9mdDEUMBIGA1UEChMLU2Vs
Zi1TaWduZWQxDDAKBgNVBAMTA21kMjAeFw0xMDEwMDYwNjE1MjlaFw0xMzEwMDYw
NjE1MjlaMFExCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOSjERMA8GA1UEBxMITGlu
Y3JvZnQxFDASBgNVBAoTC1NlbGYtU2lnbmVkMQwwCgYDVQQDEwNtZDIwgZ8wDQYJ
KoZIhvcNAQEBBQADgY0AMIGJAoGBANWjBdpsQbpeHVXBBcBBn46h6yVOkPwcTfrS
YcddYfDwGRsrWLDIwQyxCWG0INo78Oo/EcLje7+izIXtXBSy+NCVtT3UA8W5EYQa
nCtRgCmw7g27FIGdkdkFAsZcWF6MVvxtryySecREtshBM+oxmMszG8L1OriNNq+Q
oZaRlD+FAgMBAAGjgYUwgYIwFAYJYIZIAYb4QgEBAQH/BAQDAgSwMCAGA1UdDgEB
/wQWBBQ6H/dCjYosguxLSOKpJjDP/Ao3zTAqBgNVHSUBAf8EIDAeBggrBgEFBQcD
AgYIKwYBBQUHAwMGCCsGAQUFBwMEMA4GA1UdDwEB/wQEAwIDuDAMBgNVHRMBAf8E
AjAAMA0GCSqGSIb3DQEBAgUAA4GBAF408/qC6WY18uFHNIsPpMzURQXU8zD43+tT
UhtN3VKNVZc21wM5oepsf4rq68UDByIWDWgxGbyw86jGbW+biB/v6HAqDZ0gGi7T
sIO4tnxT4PQBpafzgUWJ5dMwXETI2+0yeWBbYt+pmQOescrf2DhuHDhJxDC18S18
6jkC9ykF
-----END CERTIFICATE-----"""

def testbase64md5_crt():
  return """-----BEGIN CERTIFICATE-----
MIICojCCAgugAwIBAgIFAJI9ltIwDQYJKoZIhvcNAQEEBQAwUTELMAkGA1UEBhMC
VVMxCzAJBgNVBAgTAk5KMREwDwYDVQQHEwhMaW5jcm9mdDEUMBIGA1UEChMLU2Vs
Zi1TaWduZWQxDDAKBgNVBAMTA21kNTAeFw0xMDEwMDYwNjE2MDlaFw0xMzEwMDYw
NjE2MDlaMFExCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJOSjERMA8GA1UEBxMITGlu
Y3JvZnQxFDASBgNVBAoTC1NlbGYtU2lnbmVkMQwwCgYDVQQDEwNtZDUwgZ8wDQYJ
KoZIhvcNAQEBBQADgY0AMIGJAoGBAKaKocnENKmYMaUfzpiSMmePI1owhnpiBxu1
lAT5NLtKkAJ+eE4T8EcFBdpugs8NZ9jb/Ekk3SUNAVLFx3cAigLu1WJCbMOvTQgc
TAsHiCBrt9xglTxqw6bGMwRz15VBSvv7C+LfTa0viTC491XaU9VaEQdG+HyBOr8y
2OuteOItAgMBAAGjgYUwgYIwFAYJYIZIAYb4QgEBAQH/BAQDAgSwMCAGA1UdDgEB
/wQWBBRZV25X/taLDkGq/odmsIj7XXZqqjAqBgNVHSUBAf8EIDAeBggrBgEFBQcD
AgYIKwYBBQUHAwMGCCsGAQUFBwMEMA4GA1UdDwEB/wQEAwIDuDAMBgNVHRMBAf8E
AjAAMA0GCSqGSIb3DQEBBAUAA4GBABsCjl40AKr6DrQfWMJrVvt71vFsQl71gaJG
1DEpN/tewzjJG1g2bHYlHhv8wKdyXUhR/fASVXoQ8CI0dNdnC34g6mW14UpWT2kd
1hDpR/cL2OWeHIIceTecG7oaAluYkECXHU7QuVufGZVqiCHeBwEL0mnjpMq0jRAc
F/EwOLA9
-----END CERTIFICATE-----"""

def testbase64switchchars_crt():
  """ switch two values """
  cert = testbase64_crt()
  pos = 44
  val = cert[pos:pos+1]
  if val == "a":
    val = "b"
  else:
    val = "a"
  return cert[:pos] + val + cert[pos+1:]

def testbase64extra_crt():
  """ add extra chars in the middle of a cert """
  cert = testbase64_crt()
  pos = 40
  return cert[:pos] + "extra" + cert[pos:]

def testder_crt():
  return """"""

def mobileMinutesWithChain_crt():
  return """-----BEGIN CERTIFICATE-----
MIIECjCCAvKgAwIBAgIFAJCZl1EwDQYJKoZIhvcNAQEFBQAwgZUxCzAJBgNVBAYT
AkFVMQwwCgYDVQQIEwNBQ1QxETAPBgNVBAcTCENhbmJlcnJhMSIwIAYDVQQKExlL
ZW4gQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRswGQYDVQQLExJJc3N1aW5nIERlcGFy
dG1lbnQxFjAUBgoJkiaJk/IsZAEBEwYxMjM0NTYxDDAKBgNVBAMTA0tlbjAeFw0x
MDA0MjIwNTM5MDRaFw0xMzA0MjIwNTM5MDRaMIIBEjELMAkGA1UEBhMCQVUxDDAK
BgNVBAgTA0FDVDERMA8GA1UEBxMIQ2FuYmVycmExGDAWBgNVBAoTD0JpZ1Bob25l
Y29tcGFueTEcMBoGA1UECxMTQ3VycmVuY3kgRGVwYXJ0bWVudDETMBEGCgmSJomT
8ixkAQETAzEyMzEnMCUGA1UEAxMeUmVnaXN0cnk6dXJyZW1vdGUuY29tL3JlZ2lz
dHJ5MSwwKgYDVQQDEyNSZWRlZW1lcjpCaWdQaG9uZUNvbXBhbnkuY29tL2NyZWRp
dDEQMA4GA1UEAxMHQ29kZTpNTTEUMBIGA1UEAxMLUXVhbnRpdHk6MTAxFjAUBgNV
BAMTDU1vYmlsZU1pbnV0ZXMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALuB
qpQOoAUFpW25tbRZSPcXeD3MmuZ4ri8j0Sl2EyWwFaBSkRFvFAB8b4UIfggH/L9S
liYx0xRrXJUU/qa2boXknO5r+hIPwfYTQcAZxSHQPbs/UJvr7Sk5kd7Ya0dvuBJz
mXEAC73PWqCAKk1xo8HWerGWwpeqdXdpQ3/jubmvAgMBAAGjZTBjMBQGCWCGSAGG
+EIBAQEB/wQEAwIEsDAqBgNVHSUBAf8EIDAeBggrBgEFBQcDAgYIKwYBBQUHAwMG
CCsGAQUFBwMEMA4GA1UdDwEB/wQEAwIDuDAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
SIb3DQEBBQUAA4IBAQAPDT0uvnNVN8KLAldvQhRl76Guk6JK32dyq243pVAtc7Up
IZykmQKarfCz9COf/rq5SOlDpyaKCip3rx2PZOX7s/DzK11awXa5nE5YVhEeBZSs
+V/Ul4XINebW2ziGZCoOT366Yi9vogwOYQxLWX54jxoy+qC4TbnhyWDmAJGn9Z8m
KvnVV3nLxkjtohvLd0CF0gwxjxcHYqYJYlsZEHbXleH63LyaatEOWusVp8XEv452
HBV5L+JtGHgRBJ0CCIgbUgpms0k+mFYvY+fpTCnOzHVgx3TweF0tjLxHSCh7GfJ9
WA5+IcTEjNEnpAzAFeKIf2DOfCHMjwrebLhHnmNJ
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIETjCCAzagAwIBAgIFAJCZO/4wDQYJKoZIhvcNAQEFBQAwgZUxCzAJBgNVBAYT
AkFVMQwwCgYDVQQIEwNBQ1QxETAPBgNVBAcTCENhbmJlcnJhMSIwIAYDVQQKExlL
ZW4gQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRswGQYDVQQLExJJc3N1aW5nIERlcGFy
dG1lbnQxFjAUBgoJkiaJk/IsZAEBEwYxMjM0NTYxDDAKBgNVBAMTA0tlbjAeFw0x
MDA0MjIwMjE0NDhaFw0xNTA0MjIwMjE0NDhaMIGVMQswCQYDVQQGEwJBVTEMMAoG
A1UECBMDQUNUMREwDwYDVQQHEwhDYW5iZXJyYTEiMCAGA1UEChMZS2VuIENlcnRp
ZmljYXRlIEF1dGhvcml0eTEbMBkGA1UECxMSSXNzdWluZyBEZXBhcnRtZW50MRYw
FAYKCZImiZPyLGQBARMGMTIzNDU2MQwwCgYDVQQDEwNLZW4wggEiMA0GCSqGSIb3
DQEBAQUAA4IBDwAwggEKAoIBAQDPG5pKrghB4Y9V/7PBwr5v8pbsBDZBMh3ywiQ4
PH/n8qF1KJcC6fCIgI9riirtQg5tBSTEfD7CRPU8javXJcChD9SdcsMFsQmje0WY
w0crHBhT/RdDxhOg5lt+2A6feM8BKoC3BAtzZz+RyGiJHz4/tPN5nHtCGo7LmoUg
svMtandfUPZQvE09ypRPTFGVWk32eZ801qmCWGCdXTarjffs0/Xc+SNVoC8AJmoA
xQjIoQWHwBSR7GwvN4W9l4ymSGmd/nFttJD+wJ4ed+XnzS6bWIPv9E0VtSKYz+eR
QJV7i4UP7cR6klMq5s8J9Bw3eFIj234206fMfk5Oq+QhrdavAgMBAAGjgaIwgZ8w
EQYJYIZIAYb4QgEBBAQDAgB3MB4GA1UdEQEB/wQUMBKBEGtlbkB1cnJlbW90ZS5j
b20wHQYDVR0OBBYEFFA17XLXc7WMBwRnHmSUnax5Ta0eMCoGA1UdJQEB/wQgMB4G
CCsGAQUFBwMCBggrBgEFBQcDAwYIKwYBBQUHAwQwDgYDVR0PAQH/BAQDAgH+MA8G
A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAMLu3g1bUb5SN463EmRv
Ldj9tFvf8bLn89/dgOwts+l7kbQisIanqX69f/0IA9MIZAGqK0qPcWGbOT9dPYjF
A9WOUd7/sKUCztv62eNFqXfnsUEKvvh91qOFVDXl3bv7LPk6aYYCuEc1Py7bAq0B
Mfny4k9/HLrigY8kpk+MZd0CvbwSnxL/ay+kcDokGvXZokEQo03pwD74AhJ8imxe
56kX5xb1kujOJMoL0R8hmmEwTs71SndlmtB0v4IlRYz00JT8ZpGcCpEXjIXzzj0w
3h/YK4tBbZzK7EW6FSQrBGNpQkkmwPF+lGhj0A2v/qmvcKJaUyizz/afXniwgnxK
UuA=
-----END CERTIFICATE-----
"""

def secondRecipientSingleCertificate_crt():
  return """-----BEGIN CERTIFICATE-----
MIICkjCCAfugAwIBAgIFAJCZpDowDQYJKoZIhvcNAQEFBQAwWTELMAkGA1UEBhMC
QVUxDDAKBgNVBAgTA0FDVDERMA8GA1UEBxMIQ2FuYmVycmExEDAOBgNVBAoTB1Nv
bWVHdXkxFzAVBgNVBAMTDkZpcnN0UmVjaXBpZW50MB4XDTEwMDQyMjA2MDc1N1oX
DTEzMDQyMjA2MDc1N1owWjELMAkGA1UEBhMCQVUxDDAKBgNVBAgTA0FDVDERMA8G
A1UEBxMIQ2FuYmVycmExEDAOBgNVBAoTB1NvbWVHdXkxGDAWBgNVBAMTD1NlY29u
ZFJlY2lwaWVudDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5LTdZDNi0yrM
XN2n+QMEAWBEqSpsfs59RL7AFxy2BoLayLOM5rYHWD4dljzi8KlcuxFSej86bLrK
XxTK9yj7vhncCAdEa+A83FfXzinmq4njgLuuJormLvMv/AynH0UIuEsKV3D0e/ap
5g5ZVnp1xa8vcOQyu5wFH6TATEqNc80CAwEAAaNlMGMwFAYJYIZIAYb4QgEBAQH/
BAQDAgSwMCoGA1UdJQEB/wQgMB4GCCsGAQUFBwMCBggrBgEFBQcDAwYIKwYBBQUH
AwQwDgYDVR0PAQH/BAQDAgO4MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEF
BQADgYEAJ8PbvSdKKL++ArE7Ejdb6UK1g1V0idwLSBMcZO2JnIqAapfI4rtIL52L
f6dQnldWry1vQhSp58SBftngi5OZiLsnkuEWwEyvfEopjFuzJnC3YeyGD89p6I0D
qtZlzkPbrX21UHc8j8q58YOHSu+IIZen9x0sH/k5Gk3VI+GPHjs=
-----END CERTIFICATE-----
"""

def secondRecipientEntireChain_crt():
  return """-----BEGIN CERTIFICATE-----
MIICkjCCAfugAwIBAgIFAJCZpDowDQYJKoZIhvcNAQEFBQAwWTELMAkGA1UEBhMC
QVUxDDAKBgNVBAgTA0FDVDERMA8GA1UEBxMIQ2FuYmVycmExEDAOBgNVBAoTB1Nv
bWVHdXkxFzAVBgNVBAMTDkZpcnN0UmVjaXBpZW50MB4XDTEwMDQyMjA2MDc1N1oX
DTEzMDQyMjA2MDc1N1owWjELMAkGA1UEBhMCQVUxDDAKBgNVBAgTA0FDVDERMA8G
A1UEBxMIQ2FuYmVycmExEDAOBgNVBAoTB1NvbWVHdXkxGDAWBgNVBAMTD1NlY29u
ZFJlY2lwaWVudDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5LTdZDNi0yrM
XN2n+QMEAWBEqSpsfs59RL7AFxy2BoLayLOM5rYHWD4dljzi8KlcuxFSej86bLrK
XxTK9yj7vhncCAdEa+A83FfXzinmq4njgLuuJormLvMv/AynH0UIuEsKV3D0e/ap
5g5ZVnp1xa8vcOQyu5wFH6TATEqNc80CAwEAAaNlMGMwFAYJYIZIAYb4QgEBAQH/
BAQDAgSwMCoGA1UdJQEB/wQgMB4GCCsGAQUFBwMCBggrBgEFBQcDAwYIKwYBBQUH
AwQwDgYDVR0PAQH/BAQDAgO4MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEF
BQADgYEAJ8PbvSdKKL++ArE7Ejdb6UK1g1V0idwLSBMcZO2JnIqAapfI4rtIL52L
f6dQnldWry1vQhSp58SBftngi5OZiLsnkuEWwEyvfEopjFuzJnC3YeyGD89p6I0D
qtZlzkPbrX21UHc8j8q58YOHSu+IIZen9x0sH/k5Gk3VI+GPHjs=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDTDCCArWgAwIBAgIFAJCZoHIwDQYJKoZIhvcNAQEFBQAwggESMQswCQYDVQQG
EwJBVTEMMAoGA1UECBMDQUNUMREwDwYDVQQHEwhDYW5iZXJyYTEYMBYGA1UEChMP
QmlnUGhvbmVjb21wYW55MRwwGgYDVQQLExNDdXJyZW5jeSBEZXBhcnRtZW50MRMw
EQYKCZImiZPyLGQBARMDMTIzMScwJQYDVQQDEx5SZWdpc3RyeTp1cnJlbW90ZS5j
b20vcmVnaXN0cnkxLDAqBgNVBAMTI1JlZGVlbWVyOkJpZ1Bob25lQ29tcGFueS5j
b20vY3JlZGl0MRAwDgYDVQQDEwdDb2RlOk1NMRQwEgYDVQQDEwtRdWFudGl0eTox
MDEWMBQGA1UEAxMNTW9iaWxlTWludXRlczAeFw0xMDA0MjIwNTU5MzBaFw0xMzA0
MjIwNTU5MzBaMFkxCzAJBgNVBAYTAkFVMQwwCgYDVQQIEwNBQ1QxETAPBgNVBAcT
CENhbmJlcnJhMRAwDgYDVQQKEwdTb21lR3V5MRcwFQYDVQQDEw5GaXJzdFJlY2lw
aWVudDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA4NS1s/+Jtw0sus8QcueP
kbkMK2tRqhXwfc0UpookbRhvvYJFIb/wv8gVhVmJgrEYq9ESyeYW9N96Q18I6v54
Pgtj+NEJVvFR/vblsA6dXI8nXCmh1MfSdYQnFVH+lss6KE91qz65Wi6LdtLxSKZM
IHMy958FEvj5w6EMj7942rsCAwEAAaNlMGMwFAYJYIZIAYb4QgEBAQH/BAQDAgSw
MCoGA1UdJQEB/wQgMB4GCCsGAQUFBwMCBggrBgEFBQcDAwYIKwYBBQUHAwQwDgYD
VR0PAQH/BAQDAgO4MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEA
eriG0F8iLO9UHYrythvjSxuhauuISw/S8a5m61SQhX7Q+OIfvPQcjhyFKEScwAqY
LadSojWPLvfQiayFYM8epm2zMTzDS+lYznwGWSkqjs5AbujBkwC08eUoqk+qMaPO
RfiX3pvOMdcfiU02fQ6V5GnSXSYyP3llmwfZwwJYQFc=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIECjCCAvKgAwIBAgIFAJCZl1EwDQYJKoZIhvcNAQEFBQAwgZUxCzAJBgNVBAYT
AkFVMQwwCgYDVQQIEwNBQ1QxETAPBgNVBAcTCENhbmJlcnJhMSIwIAYDVQQKExlL
ZW4gQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRswGQYDVQQLExJJc3N1aW5nIERlcGFy
dG1lbnQxFjAUBgoJkiaJk/IsZAEBEwYxMjM0NTYxDDAKBgNVBAMTA0tlbjAeFw0x
MDA0MjIwNTM5MDRaFw0xMzA0MjIwNTM5MDRaMIIBEjELMAkGA1UEBhMCQVUxDDAK
BgNVBAgTA0FDVDERMA8GA1UEBxMIQ2FuYmVycmExGDAWBgNVBAoTD0JpZ1Bob25l
Y29tcGFueTEcMBoGA1UECxMTQ3VycmVuY3kgRGVwYXJ0bWVudDETMBEGCgmSJomT
8ixkAQETAzEyMzEnMCUGA1UEAxMeUmVnaXN0cnk6dXJyZW1vdGUuY29tL3JlZ2lz
dHJ5MSwwKgYDVQQDEyNSZWRlZW1lcjpCaWdQaG9uZUNvbXBhbnkuY29tL2NyZWRp
dDEQMA4GA1UEAxMHQ29kZTpNTTEUMBIGA1UEAxMLUXVhbnRpdHk6MTAxFjAUBgNV
BAMTDU1vYmlsZU1pbnV0ZXMwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALuB
qpQOoAUFpW25tbRZSPcXeD3MmuZ4ri8j0Sl2EyWwFaBSkRFvFAB8b4UIfggH/L9S
liYx0xRrXJUU/qa2boXknO5r+hIPwfYTQcAZxSHQPbs/UJvr7Sk5kd7Ya0dvuBJz
mXEAC73PWqCAKk1xo8HWerGWwpeqdXdpQ3/jubmvAgMBAAGjZTBjMBQGCWCGSAGG
+EIBAQEB/wQEAwIEsDAqBgNVHSUBAf8EIDAeBggrBgEFBQcDAgYIKwYBBQUHAwMG
CCsGAQUFBwMEMA4GA1UdDwEB/wQEAwIDuDAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
SIb3DQEBBQUAA4IBAQAPDT0uvnNVN8KLAldvQhRl76Guk6JK32dyq243pVAtc7Up
IZykmQKarfCz9COf/rq5SOlDpyaKCip3rx2PZOX7s/DzK11awXa5nE5YVhEeBZSs
+V/Ul4XINebW2ziGZCoOT366Yi9vogwOYQxLWX54jxoy+qC4TbnhyWDmAJGn9Z8m
KvnVV3nLxkjtohvLd0CF0gwxjxcHYqYJYlsZEHbXleH63LyaatEOWusVp8XEv452
HBV5L+JtGHgRBJ0CCIgbUgpms0k+mFYvY+fpTCnOzHVgx3TweF0tjLxHSCh7GfJ9
WA5+IcTEjNEnpAzAFeKIf2DOfCHMjwrebLhHnmNJ
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIETjCCAzagAwIBAgIFAJCZO/4wDQYJKoZIhvcNAQEFBQAwgZUxCzAJBgNVBAYT
AkFVMQwwCgYDVQQIEwNBQ1QxETAPBgNVBAcTCENhbmJlcnJhMSIwIAYDVQQKExlL
ZW4gQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRswGQYDVQQLExJJc3N1aW5nIERlcGFy
dG1lbnQxFjAUBgoJkiaJk/IsZAEBEwYxMjM0NTYxDDAKBgNVBAMTA0tlbjAeFw0x
MDA0MjIwMjE0NDhaFw0xNTA0MjIwMjE0NDhaMIGVMQswCQYDVQQGEwJBVTEMMAoG
A1UECBMDQUNUMREwDwYDVQQHEwhDYW5iZXJyYTEiMCAGA1UEChMZS2VuIENlcnRp
ZmljYXRlIEF1dGhvcml0eTEbMBkGA1UECxMSSXNzdWluZyBEZXBhcnRtZW50MRYw
FAYKCZImiZPyLGQBARMGMTIzNDU2MQwwCgYDVQQDEwNLZW4wggEiMA0GCSqGSIb3
DQEBAQUAA4IBDwAwggEKAoIBAQDPG5pKrghB4Y9V/7PBwr5v8pbsBDZBMh3ywiQ4
PH/n8qF1KJcC6fCIgI9riirtQg5tBSTEfD7CRPU8javXJcChD9SdcsMFsQmje0WY
w0crHBhT/RdDxhOg5lt+2A6feM8BKoC3BAtzZz+RyGiJHz4/tPN5nHtCGo7LmoUg
svMtandfUPZQvE09ypRPTFGVWk32eZ801qmCWGCdXTarjffs0/Xc+SNVoC8AJmoA
xQjIoQWHwBSR7GwvN4W9l4ymSGmd/nFttJD+wJ4ed+XnzS6bWIPv9E0VtSKYz+eR
QJV7i4UP7cR6klMq5s8J9Bw3eFIj234206fMfk5Oq+QhrdavAgMBAAGjgaIwgZ8w
EQYJYIZIAYb4QgEBBAQDAgB3MB4GA1UdEQEB/wQUMBKBEGtlbkB1cnJlbW90ZS5j
b20wHQYDVR0OBBYEFFA17XLXc7WMBwRnHmSUnax5Ta0eMCoGA1UdJQEB/wQgMB4G
CCsGAQUFBwMCBggrBgEFBQcDAwYIKwYBBQUHAwQwDgYDVR0PAQH/BAQDAgH+MA8G
A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAMLu3g1bUb5SN463EmRv
Ldj9tFvf8bLn89/dgOwts+l7kbQisIanqX69f/0IA9MIZAGqK0qPcWGbOT9dPYjF
A9WOUd7/sKUCztv62eNFqXfnsUEKvvh91qOFVDXl3bv7LPk6aYYCuEc1Py7bAq0B
Mfny4k9/HLrigY8kpk+MZd0CvbwSnxL/ay+kcDokGvXZokEQo03pwD74AhJ8imxe
56kX5xb1kujOJMoL0R8hmmEwTs71SndlmtB0v4IlRYz00JT8ZpGcCpEXjIXzzj0w
3h/YK4tBbZzK7EW6FSQrBGNpQkkmwPF+lGhj0A2v/qmvcKJaUyizz/afXniwgnxK
UuA=
-----END CERTIFICATE-----
"""

def certChain3_crt():
  return """-----BEGIN CERTIFICATE-----
MIIDNDCCAhygAwIBAgIFAJCZl1EwDQYJKoZIhvcNAQEFBQAwIjEgMB4GA1UEAxMX
RGVhbGVyIHRva2VucyAxMDAwMDAwMDcwHhcNMTAwNDIyMDUzOTA0WhcNMTMwNDIy
MDUzOTA0WjAcMRowGAYDVQQDExF0ZXN0MkBleGFtcGxlLmNvbTCCASIwDQYJKoZI
hvcNAQEBBQADggEPADCCAQoCggEBAIyX6ZdpQ2ZwUBKWL7xR7X6rKxqQvLt5ToSd
mg/gvMjVmby4Kr//C/TcWEdawqoRtPvSISytt6OgqRCJO8DpFgu5Bbjn+LUVhPhD
rFwuOKReZ6ATRSKYMY1594vP4BEgRym1qhhd8vcYN5TKPZ5sTrbk+vy0tk+6wgdF
7Rvz3A6KGDv73UmZTBbyjaeZQZAkhXgaUkDmEkNYy5T3CRp0/c9afmuFw8/ddI5q
Pbd/B+cjmOKxetJtFzDYfvowD82YpicihdF71CcDU8IizrW7ZJqfmyu1fGneXnOK
kAaSFezkczs85h9SIB09HHKEwZ9w0NPk0xCLn44LYn0FBYlMlZkCAwEAAaN3MHUw
FAYJYIZIAYb4QgEBAQH/BAQDAgSwMCoGA1UdJQEB/wQgMB4GCCsGAQUFBwMCBggr
BgEFBQcDAwYIKwYBBQUHAwQwDgYDVR0PAQH/BAQDAgO4MA8GA1UdEwEB/wQFMAMB
Af8wEAYFVQSnCAMBAf8EBC0xLjAwDQYJKoZIhvcNAQEFBQADggEBAENcAGOc7fpa
EFjuV09nT75Sjf2uGK0l+NqOF+3o75Z4k77+BYHUCJt4tkV8IglaX55H3WaJIIou
HKGxj2+HVLMAIaVGrKUyXbelJSs6B+gCNXL3ewi8ndZkQys2kht9V6o+DmCZBaF0
4Lm7bhnL7VGKaDch2ba32pFvyYrc55NhpAA3pqEp62UqlhHh3cO6PSU3ONGmt33N
607uVCLJaDveGLkc7YQbgcrKBOCifBHYs+rTnPFT0+kE0ioTHttd2oBlYBtSU7SI
+Lv0W+9vzqiIvwv0t/QTpf5kUR8z4H6AskPZMCJDdh8lIwVx2uHxPaCrQsJBrHcE
SZuChFJddRg===
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDzTCCArWgAwIBAgIFAJCZl1EwDQYJKoZIhvcNAQEFBQAwGjEYMBYGA1UEAxMP
Um91bGV0dGUgZGVhbGVyMB4XDTEwMDQyMjA1MzkwNFoXDTEzMDQyMjA1MzkwNFow
IjEgMB4GA1UEAxMXRGVhbGVyIHRva2VucyAxMDAwMDAwMDcwggEiMA0GCSqGSIb3
DQEBAQUAA4IBDwAwggEKAoIBAQCSuqlF1y2iCNanUJGpZRttfN2OAyd1ZmVnaE17
YrDPOw2zPikdMhiy1QMeLOv3U/gz2m656RgNzMwTKAVIoXiCL1Or1UXuVwsJ3Qno
cJHcGFMTMuDD7OyCZVHVpf90he4Sk/LOWMKgwB5T0ISU/stVEH86kJqzi8bF+F3e
v2ur8nMVlo/jWNpJx9Y871iJDiQg7Fr+ViJM7pG3hqo9U9s8uzpfveblsatpqj15
AnJd2pzOBuKLcD+SXQTAzMnr1mdCJHPqRYRKGw1dRyS+Jje8MzAivs4SWKx/jjN7
+J0/mGI91OnSqPHiDXK9OOtGLz+Ng0W7Ngv9duDAJLSQO649AgMBAAGjggEQMIIB
DDAUBglghkgBhvhCAQEBAf8EBAMCBLAwKgYDVR0lAQH/BCAwHgYIKwYBBQUHAwIG
CCsGAQUFBwMDBggrBgEFBQcDBDAOBgNVHQ8BAf8EBAMCA7gwDwYDVR0TAQH/BAUw
AwEB/zAZBgVVBKcIAQEB/wQNRGVhbGVyIHRva2VuczANBgVVBKcIAwEB/wQBNTAj
BgVVBKcIBAEB/wQXaHR0cDovL3NvbWVSZWRlZW1lci5jb20wKwYFVQSnCAYBAf8E
H2h0dHA6Ly9sb2NhbGhvc3Q6ODA4My9yZWdpc3RyYXIwKwYFVQSnCAUBAf8EH2h0
dHA6Ly9sb2NhbGhvc3Q6ODA4My9yZWdpc3RyYXIwDQYJKoZIhvcNAQEFBQADggEB
AHPaZPuQ9Nmc8RkWnDsoDkbmOKXPVgAx08TYVtcJPODqvHQv013l2ZoHtNMhEhWt
kR+Zsettk15SGtoF/gKC2HKd1MadIGIm+oL+u1nO0aw0MMdKd/dXr/bvaplo7Bt+
gWisErw6ACVc5c2SCaQKamcbqCpxtixoUkSKP3/kyf/iQhLEdk6BIJzi2CATTMfc
mYIuTyFLexfzfA1wFcjDGmQYh5A7NHO6UcZhdLjZjKqZf/S49ApmS6ZmBS7VL6dW
sWYQeqdqQM5ftZkNjG8xoURGySuExWBWmAE5t9RZ3dE6UoPzuO3emre4dsyAo/NM
4pRG9O0UbB5z/GM98XS8xws===
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDKjCCAhKgAwIBAgIFAJCZl1EwDQYJKoZIhvcNAQEFBQAwGjEYMBYGA1UEAxMP
Um91bGV0dGUgZGVhbGVyMB4XDTEwMDQyMjA1MzkwNFoXDTEzMDQyMjA1MzkwNFow
GjEYMBYGA1UEAxMPUm91bGV0dGUgZGVhbGVyMIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEAndyh3NZzIdKko7snKaIJrAAtVUS+vpQjEJW0lJA/zKsI7OxF
Ye0EsCi9JpNfLK2Vqaataqjui9QJdZLmHi3cTo7uQKdsL851V8QsJt+FOeKvws3q
BQe0wj/Tu1+QD2F0Oh4ArWjhxaCg7YAEKDLDLHgM599Npzq+QpF3EYyJqN2kK9Il
/+T6pd7/0DjJMbzuE6qx9CEIPTwPtaQ51+4G9nfTR9iNg8OdSVLbHyMAbynxvAY/
U1ZJSiYYdlwFp7H/Uc/SqI7j1e7HY63/OAoyZ/smHZeNrCzBRPH1GUagg7O9QE3C
oEKGM9QZM4LGBl3hjgkDbgpSxcXnO9EnbbnQewIDAQABo3cwdTAUBglghkgBhvhC
AQEBAf8EBAMCBLAwKgYDVR0lAQH/BCAwHgYIKwYBBQUHAwIGCCsGAQUFBwMDBggr
BgEFBQcDBDAOBgNVHQ8BAf8EBAMCA7gwDwYDVR0TAQH/BAUwAwEB/zAQBgVVBKcI
AwEB/wQELTEuMDANBgkqhkiG9w0BAQUFAAOCAQEAfmQAPMSlFwyzwMpBMZOIzeg8
uEzx3G3QQCWhNkT3G70NU+u2uiWuyWxSoVY/NQqZ22UAlFaeaJ4ioMDzynbgKSYr
BSMGV9f+r4QOzgvfySni8zhG99ZrPLF+c+oWJrmPesbw5HxG0drKODZ4r9rVrvhl
10Kcd57E4QBi7Yp8Bv+8yx8Spkl5aHnDJPTJ53/cqLXQCt/xrioIhcNP8aErpclj
83YraZy66nBDlm7IlTDBbPNlKu7/upoPqEIZQQxu7K/YypTDolTSSuRU1XhqjUFn
B8QU++QqYsFzZ/lPye/HTevs52UDC6dq2jjJ2Ia+dHsrgLGu4pYUhLP5m2psgA==
-----END CERTIFICATE-----"""

# its too long to generate private keys so here is some pre cut
def privateKey1():
  privateKeyStr = """{"primeExponentP": 
    "ANe7sE57jbmYMNCvsgpZ0yhf9LPASbTv0dGCXL8KE9qTJRpkW-F56l56Kph-YTI
     1wM1lGedrAUmxpygK34ID8yMyv1qEI-f1017Rz1rmjERGzD3RDQlqkBeR_diOl0
     6LYWTq9NQLh-1C_5pfB5BpMQXuPzpeGfmQlLt_pJIgS7VB", 
     "primeExponentQ": 
    "AHYSYRiyfum_Q4yyjD8fe2TANG6bIq7idpnkG7dpFZNcMQRZpDx0qmu3bTNFTSf
    6fl0b4_LUUWN7xi0FHtWCCAzeG9tvgSqrZre0qXQNPUuCxeTS7xF4R8DGXLC8NpV
    S4N46txwyi1jHsf2f-A9qPEtzPbCfz8-UxRk92_Q8BCWL", 
    "crtCoefficient": 
    "AIIgyy5F4CmrUai1NHGCvuB5GcnEjdkoaqqXbLQtWw1ILgSm6quSVE3N0-723_D
    _LuJEdT5zSAKfCSfHy5MU5W-nY9Nb6uftWzcSvEcY42sbsyHkRJfE_wQSqAr3e7w
    _iot0iMcRlGVy84CbSw5zwaE2EOPjECcVcxzq7IOFi0pT", 
    "privateExponent": 
    "ABlMjag9ug_WmUogKUOT02b8VEeRD9ytEv2KcHlKsN7VHkYSC4CJIrI0pTO0dJF
    NdGnO64Xncut33Ng55aU6hk8UuvwjmMQEm2uoZccJFWnUeYSHyZRqyr5CymUCCK1
    eWekie8tOvrgUaRYG6SOkFwFeb_sNH33IfUtf0qw-UKV-Nj6ct8ASE_M9IQwndV4
    qVFnBxhAqbMSq8tCoYwJVvJ0bOduDu1K7a_ujqlLqNdQjrnnFV4GlG1ZnpaXleCi
    4h3Zbwe2miCwM4xvhhh6lJ52xu3rewcjDYDUv0s4Mv5r30WN2Q1Wr46gYrfz_cVf
    0bxVaymspDR5lOJ1ZI2_X8YE", 
    "publicKey": 
    {"publicExponent": "AAEAAQ", 
    "modulus": 
    "AJ3codzWcyHSpKO7JymiCawALVVEvr6UIxCVtJSQP8yrCOzsRWHtBLAovSaTXy
    ytlammrWqo7ovUCXWS5h4t3E6O7kCnbC_OdVfELCbfhTnir8LN6gUHtMI_07tfk
    A9hdDoeAK1o4cWgoO2ABCgywyx4DOffTac6vkKRdxGMiajdpCvSJf_k-qXe_9A4
    yTG87hOqsfQhCD08D7WkOdfuBvZ300fYjYPDnUlS2x8jAG8p8bwGP1NWSUomGHZ
    cBaex_1HP0qiO49Xux2Ot_zgKMmf7Jh2XjawswUTx9RlGoIOzvUBNwqBChjPUGT
    OCxgZd4Y4JA24KUsXF5zvRJ2250Hs", "size": 2048}, 
    "primeQ": 
    "AKYMqc7rWRapU3kBL6_Q8iydlJi8wwdDXQAeh8jIx6JbgwnBJbDpDDbKcD7yVx
    P_7MrwshGGiohXunq1bPoWm8yMnTsZt9bNYrIghD37GKRofjcU8ic7CKWgw0EH5
    r0U1nK72aZYV9NSccEnn1sfEydm5Jp74SreWGwr0oD5lIu7", 
    "primeP": 
    "APNgh498oKgdw8yVpZd_jzKN8geFsXyATQAMnPlKzJ_1tFfgZ6wEBKxApIGLYQ
    aH0d3bM2OeOgWlDsY__hUkHkL7U69WR_rcTpVm7b791ScSAPafr5jPcKrZY9z-s
    MtJDM_JnG4U5YYCHDfIe9gdFzlXbh9WcsIuM5FgC4AjYqJB", 
    "size": 2048}"""
  return keys.RsaPrivateKey.Read(privateKeyStr.replace("\n",""))

def privateKey2():
  privateKeyStr = """{"primeExponentP": 
  "AAYnCS2gOwA6jLYPlsGCctohLp5Nl7UNb6rl1sNtA0VAczF1KsY2xdKnRj6GenBH
  mmYzR2JI1WyisUdshe9IofVqXG96TcwmQXC5zeoqNqdBh6gDCT0DJRGcebW7xliX5
  xiQCr6x4gPDgAepTTl7FA9-ebHar7ajzUcU-ZOMQNHH", 
  "primeExponentQ": 
  "AKtSfMXg6bJiIekhFimkUX0GKa_53nhGlnpVr62YubMnSM8bMphatT_junG36RdD
  nkGlizIjjoNYYKbVhwMgMFNF7CThw5tAz0UtEn2ubBdvQfAQt_A_iGIWmjWa01e-b
  aaTIyof0DLWT688toPOxmdtXWj66neU-mPgBg4S3GYx", 
  "crtCoefficient": 
  "ADnwi7yV1Y2Nyyj8Aan3nLbOr5-daFjWHYdUxOxhD0w0ibux0izsQiFZr2Tnap9y
  58Qo4sNgvwROX6WmTh56pfUmiuGFuSmGwldhhsg5n7ZLUA-rFudRyu6PmsrXGibd1
  VJWmXHmNWdg_kRYbkIJdNMdi--Ji5XP1ElqkafPlge7", 
  "privateExponent": 
  "AEn-M53bPDMkVUI3Y9_uwHEv96j_zVeUpBjfLU0m3xp9mP2NJ5BMmaGpPj5YlM3z
  zlSkC_y3raHM0O0qVAP7fuQfyAFUXbK2XKzoZSC18PwOdiUHloPCnPXvpe2Pg5xeB
  xkb9A7aolZ1kU99eXRzKeUKLFFixIVXKde61m0zbXy-jnutHyjXlGEaXsIMGTVW_s
  WEn7uTrInehmeYI-lION6fah8VGbUEuuv6xJC2ockJrMMyF11czeCdJyAJBJq_Unv
  PdOWyby9wSnS88fQBtP-u_UPOQ3bZnmv5V9BQu0eXKQXqMaOHBssDWy4H4pBpwY2n
  9ezMxRN6g5vBr7QRGWE", 
  "publicKey": 
  {"publicExponent": "AAEAAQ", 
  "modulus":
  "AKHSEimPIkkCvuIqcOl6aXfQtvWZUb14FRiseq0poYMPXSsVDN6FvpCeamM9SW3o
  TgzZ-07a5uNyCwl8Dx-Pq6m1A1UmCFAQH5oTyQdHbFSRfAKuHTGIJtKm315ZhU7sV
  q8rS8W6N1CiT1Y6fdnRvErEPPUIKFKWorIE7ATVfRwaiZkusjfneD7tXwjdWgufza
  LFx_uAoUIcqQmzDZzl92UT8X7YZEsPHzHgQpnnUeSmqXNXgC5oFqnAmZ6KO9L-cmV
  crHeLlHkR4YjJEg8NcRrkNT2HfPR6Y5oNtY1q36RdaQOKilACMjn3c8r0aiSmJWZn
  0pc3qIvRj0jZ1OxSlJM", 
  "size": 2048}, 
  "primeQ": "ALbF9FMnDL6pGdrZRUJOu5_vObrYqrvj6Eigw-i3BhzmZnd1jbCRnI
  EsSXvD8_HeF9Es9tn8LVohIT00npv6VIj_AGhXA8ixkeJBYhi_xNDT78-8wb_DbVX
  URRPgyF-WilUw1dHlttNId4pmrkCwmgxkfCDBk3gxyDyvhF-8CJ9R", 
  "primeP": 
  "AOKnHeH7xe4Xcn08syvGfdpNhsLfVgBzzNG8mwUBG4XughLCTMEMz_-VERhsWjDu
  r4fwr8jF90ogOLa50_BApX4_S4ZduB1dC4Jo2iZLz0j79UkOtsLlrYJz4vZI00y8L
  YoqNQ_Giqt100Uex0WMPM8BwQTNt2B85O4MeGBjoeSj", 
  "size": 2048}"""
  return keys.RsaPrivateKey.Read(privateKeyStr.replace("\n",""))


def privateKey3():
  privateKeyStr = """{"primeExponentP": 
  "AD03EIw52Ed1XTH7Wz2rNgHg3rHfVwqpSOCpEu2BzcJ0zfxeKM46JqidDJ-84jS
  _hPc_T8PWDpSnmwTOksWjmm_sKZTd67CfbMH-0_A4RKyHMy8YH3GAS__i4V0kbvk
  _XGlxAnLUpp2ybPTSXf9zhBYwumTGM63UoCdG9tFJSdun", 
  "primeExponentQ": 
  "AM7r2p1bm9k4b5PKFOSvhaSg3NICqXAjANZEPhz3dzDUFQr5XWmpdou4w-pawLe
  xBW-PAVDovQQ8kND2THpQqaf-JuoQ1UrjRYAgzP06o1LpvSE4d6YMR2xrspY-ms0
  kRx7XtVXSPzovb3ztcv0UKWjVYN24pDGYe7JDbYAWQ3IL", 
  "crtCoefficient": 
  "AL3WKl00uGO-uX3dPpZjEua-JhqRTnvTnAN2cASKaPVOHciw8IQaA5gow-jfMwP
  5G0yDMKcuqJMIzQHNi9CZ4-lnGYkMBMh0vvaGt0Ekh-T_j__f_pIOY-caLb4-iYx
  5mKApusPJQVVxDNt3QCCVpro_UVRwljmPydwS2xNckmtK", 
  "privateExponent": 
  "ADlR3e45zvS4UCZ18PZB6R_6A3kKE1_N_Pu5PxEOxTXas67pnDGxJ0fnDV8zTFv
  itZfME-a3mia8EHNjf6mhnyhXjWG0SsfwjN36SvNufjC4FmCDX_F3nUy5zYTqxzK
  BqWWMB9Iin4q9ut5RTpQyC7E1jjn6nx913bEDYTSk4Qersk3BHos9z1re3SQBVY7
  IeLHeho-lpUlqpRfuEzG9AQ_TAR7-KCBXbVTCjcsiZ7HGty3GekLPXkzQqV63ysZ
  aUVKxGoqXdIPe79AO1GbCSlJiP8HNCpVfYHf0kwjORNB6ShIj4jMo3PDrDZB7RNn
  t5vslvTrpBz35YIZ8Vhwj3o0", 
  "publicKey": 
  {"publicExponent": "AAEAAQ", 
  "modulus": 
  "ANhUbs3yMGvnILl9Kxg8BYMPoiqCl-cilRHiw095K7_mMbSRZ6SPA77QgR3kfAA
  LlGsNwAe3t3GBDorms_YNmqGlH9jef3cfZfNlzytg3bZpGWjq0nGoFpcYZvD7Yyk
  wGknhRIoVOWHkktWAI3ZvIDNwhQcS9cjoaiDF7u3D2LwSFj5T2lj8JL-99c1Szz4
  0cT-V1H2abQEiu-IrV64N2JuicM4Ch2WRTutPopTdetgdYRwlLHmaaSnagsAGGev
  4qKEj4WHXAhsX8yGWCdffTgcK1Yq9YWdNDzLpFc6J4yKIRl_vBtV7URZaQQ1be7F
  PWge-TyaExBLu0a5Muxhh7p0", 
  "size": 2048}, 
  "primeQ": "AN7XWTePIV3zLEBeq8FWo4hfE_btmghOUQBlUPajZere7Aj-5S-8w
  rnGOS61xLzSX9tWCQtJb7jUNVBh6_QOxh0zxqNYjZA61BM52fAOEdFaGHQYa2IHZ
  s-dY-ngrmA8y_ApNbSJv9DP0a1XhT3fgmQ5Z1WVawynB3HgX3T1Xh5H", 
  "primeP": "APiFDA6QadO30tNFx6fuK5BnRzMUfM34636QZhrP4-c9A4X1A1IMy
  7o4EA-g4ZgHYqqbjc6VM4DJtkP-aFGtD_5UGri9rHee5-bv91ul8HCXeT25qUfx4
  NNXWe6-NLUzrTuJ4slanwg_OK5uIf9LZhMzkIIskaSQ6Z9YgalByEn7", 
  "size": 2048}"""
  return keys.RsaPrivateKey.Read(privateKeyStr.replace("\n",""))
